package cn.sczhyt.modules.sys.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import cn.sczhyt.common.validator.group.AddGroup;
import cn.sczhyt.common.validator.group.UpdateGroup;
import lombok.Data;
import org.springframework.stereotype.Repository;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;

/**
 * 政协委员信息表
 * 
 * @author luojialin
 * @email 78357966@qq.com
 * @date 2020-05-29 11:42:12
 */
@Data
@TableName("sys_user_info")
@Repository
public class SysUserInfoEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 
	 */
	@TableId
	private String id;
	/**
	 * 用户ID
	 */
	private String userId;
	/**
	 * 姓名
	 */
	private String name;
	/**
	 * 性别
	 */
	private String sex;

	/**
	 * 图片路径
	 */
	private String pictureUrl;
	/**
	 * 民族
	 */
	private String nation;
	/**
	 * 邮箱
	 */
	@NotBlank(message="邮箱不能为空", groups = {AddGroup.class, UpdateGroup.class})
	@Email(message="邮箱格式不正确", groups = {AddGroup.class, UpdateGroup.class})
	private String email;

	/**
	 * 手机号
	 */
	private String mobile;
	/**
	 * 单位
	 */
	private String company;
	/**
	 * 职务
	 */
	private String title;
	/**
	 * 联系电话
	 */
	private String telephone;
	/**
	 * 通讯地址
	 */
	private String address;
	/**
	 * 邮政编码
	 */
	private String postcode;
	/**
	 * 党派
	 */
	private String party;
	/**
	 * 届次
	 */
	private String session;

	/**
	 * 代表团
	 */
	private String delegation;
	/**
	 * 排序号
	 */
	private String sort;
	/**
	 * 代表证号
	 */
	private String card;
	/**
	 * 出生日期
	 */
	@JsonFormat(pattern="yyyy-MM",timezone="GMT+8")
	private Date birthday;
	/**
	 * 学历
	 */
	private String education;
	/**
	 * 参加工作日期
	 */
	@JsonFormat(pattern="yyyy-MM",timezone="GMT+8")
	private Date workDate;
	/**
	 * 代表状态
	 */
	private String state;
	/**
	 * 所在分组
	 */
	private String team;
	/**
	 * 所属党支部
	 */
	private String partyBranch;
	/**
	 * 籍贯
	 */
	private String birthPlace;
	/**
	 * 技术职称
	 */
	private String skill;
	/**
	 * 专长
	 */
	private String expertise;
	/**
	 * 是否新委员（0否1是）
	 */
	private boolean ifMember;
	/**
	 * 备注
	 */
	private String remarks;

	@TableField(exist=false)
	private SysUserEntity userEntity;
}
